package com.rem.concurrency.juc.my1Base;

/**
 * <>1</>
 * 进程：一个程序，QQ.exe Music.exe 程序的集合；
 * 一个进程往往可以包含多个线程，至少包含一个！
 * Java默认有几个线程？ 2 个 mian、GC
 * 线程：开了一个进程 Typora，写字，自动保存（线程负责的）
 * 对于Java而言：Thread、Runnable、Callable
 * <p>
 * <p>
 * <p>
 * <>2</>
 * 并发编程：并发、并行
 * 并发（多线程操作同一个资源）
 * CPU 一核 ，模拟出来多条线程，天下武功，唯快不破，快速交替
 * 并行（多个人一起行走）
 * CPU 多核 ，多个线程可以同时执行； 线程池
 * <p>
 * 并发编程的本质：充分利用CPU的资源
 * <p>
 * <p>
 * <p>
 * <>3</>
 * wait/sleep 区别
 * 1、来自不同的类
 * wait => Object
 * sleep => Thread
 * 2、关于锁的释放
 * wait 会释放锁，sleep 睡觉了，抱着锁睡觉，不会释放！
 * 3、使用的范围是不同的
 * wait必须在同步代码块中
 * sleep 可以再任何地方睡
 * 4、是否需要捕获异常
 * wait 不需要捕获异常
 * sleep 必须要捕获异常
 *
 * @author Rem
 * @date 2021-03-08
 */

public class Demo01 {

    public static void main(String[] args) {

        //计算机 线程数
        System.err.println(Runtime.getRuntime().availableProcessors());

        //线程状态
        System.err.println(Thread.State.NEW);
        System.err.println(Thread.State.RUNNABLE);
        System.err.println(Thread.State.BLOCKED);
        System.err.println(Thread.State.WAITING);
        System.err.println(Thread.State.TERMINATED);
        System.err.println(Thread.State.TERMINATED);

    }
}
